package servicios;

import java.util.List;
import java.util.Map;

import auxiliar.Turno;

import clientes.Cliente;
import dataBase.JDBCServicioDAO;

public class GestorServicio {
	
	private JDBCServicioDAO sedao = new JDBCServicioDAO();
	
	//crea un servicio nuevo
	public void crearServicio(Servicio s) {
		sedao.insertServicio(s);
	}
	
	//muestra una lista de servicios pasandole el dni del cliente
	public List<Servicio> mostrarServicioCliente(Cliente c){
		return sedao.selectServicioCliente(c);
	}
	
	//muestra un servicio pasandole el nombre de servicio y el cliente
	public Servicio mostrarServicio(String nombre, Cliente c){
		return sedao.selectServicio(nombre, c);
	}
	
	//muestra un servicio pasandole un dni de un cliente
	//public Servicio mostrarServicioPorDNI(String dni){
		//return sedao.selectServicioPorDNI(dni);
	//}
	
	//insertar fila en tabla servicios_tipostrabajadores
	public void crearServicioTipoTrabajador(Map<String,Integer> tt, Servicio s) {
		sedao.insertServicioTipoTrabajador(tt, s);
	}
	
	//dado un servicio y un cliente devuelve un Map de tipo de trabajador y cantidad
	public Map<String,Integer> mostrarMapTrabajadores(Servicio s, Cliente c){
		return sedao.selectMapTrabajadores(s, c);
	}
	
	//cuenta los turnos que existen para un servicio
	public int cuentaTurnosServicio(Servicio s){
		return sedao.countTurnosServicio(s);
	}
	
	//modifica un servicio
	public void modificarServicio(Servicio s){
		sedao.updateServicio(s);
	}
	
	//modificar fila en tabla servicios_tipostrabajadores
	public void modificarServicioTipoTrabajador(Map<String,Integer> tt, Servicio s) {
		sedao.updateServicioTipoTrabajador(tt, s);
	}
	
	//borrar un servicio
	public void borrarServicio(Servicio s){
		sedao.deleteServicio(s);
	}
	//muestra la cantidad de vigilantes de un tipo que requiere un servicio
	public int mostrarNumTipoServicio(Servicio s, String tipoEmp){
		return sedao.selectNumTipoServicio(s, tipoEmp);
	}
	
	//muestra una lista de turnos pasandole el servicio
	public List<Turno> mostrarTurnosServicio(Servicio s,String tipoTrab){
		return sedao.selectTurnosServicio(s,tipoTrab);
	}
	//muestra una lista de turnos pasandole el servicio, el tipo de trabajador y el tipo de turno
	public List<Turno> mostrarTipoTurnosServicio(Servicio s,String tipoTrab,String tipoTurno){
		return sedao.selectTipoTurnosServicio(s, tipoTrab, tipoTurno);
	}
	//cuenta los turnos que existen para un servicio y un tipo de trabajador
	public int cuentaNumTurnosServicioTipoTrab(Servicio s, String tipoTrab){
		return sedao.countTurnosServicioTipoTrab(s, tipoTrab);
	}
}
